package initialize

import (
	"fmt"
	"github.com/fsnotify/fsnotify"
	"github.com/spf13/viper"
	"go.uber.org/zap"
	"server/global"
)


func InitYamlConfig() {
	v := viper.New()
	v.SetConfigName("config")
	v.SetConfigType("yaml")
	v.AddConfigPath(".")
	v.AddConfigPath("./conf")

	err := v.ReadInConfig()
	if err != nil {
		panic(fmt.Errorf("读取yaml配置文件失败: %s \n", err))
	}

	v.WatchConfig()
	v.OnConfigChange(func(e fsnotify.Event) {
		global.Logger.Info("config file changed:")
		if err = v.Unmarshal(&global.XidwConfig); err != nil {
			global.Logger.Info("系统配置数据被修改", zap.Error(err))
		}
	})

	if err = v.Unmarshal(&global.XidwConfig); err != nil {
		global.Logger.Info("系统配置数据转换失败", zap.Error(err))
	}

	global.XidwViper = v
}
